<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LINE 1 &quot;libraries\\ghc-heap\\GHC\\Exts\\Heap\\InfoTable\\Types.hsc&quot; #-}</span><span>
</span><span id="line-1"></span><span class="hs-pragma">{-# LANGUAGE DeriveGeneric #-}</span><span>
</span><span id="line-2"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Exts.Heap.InfoTable.Types</span><span>
</span><span id="line-3"></span><span>    </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier">StgInfoTable</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-4"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#EntryFunPtr"><span class="hs-identifier">EntryFunPtr</span></a></span><span>
</span><span id="line-5"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#HalfWord"><span class="hs-identifier">HalfWord</span></a></span><span>
</span><span id="line-6"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#ItblCodes"><span class="hs-identifier">ItblCodes</span></a></span><span>
</span><span id="line-7"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-8"></span><span>
</span><span id="line-9"></span><span>
</span><span id="line-10"></span><span>
</span><span id="line-11"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span> </span><span class="hs-comment">-- See note [Why do we import Prelude here?]</span><span>
</span><span id="line-12"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.Generics.html#"><span class="hs-identifier">GHC.Generics</span></a></span><span>
</span><span id="line-13"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.ClosureTypes.html"><span class="hs-identifier">GHC.Exts.Heap.ClosureTypes</span></a></span><span>
</span><span id="line-14"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Foreign.html#"><span class="hs-identifier">Foreign</span></a></span><span>
</span><span id="line-15"></span><span>
</span><span id="line-16"></span><span class="hs-keyword">type</span><span> </span><span id="ItblCodes"><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#ItblCodes"><span class="hs-identifier hs-var">ItblCodes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Word.html#Word32"><span class="hs-identifier hs-type">Word32</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-17"></span><span>
</span><span id="line-18"></span><span>
</span><span id="line-19"></span><span class="hs-comment">-- Ultra-minimalist version specially for constructors</span><span>
</span><span id="line-20"></span><span>
</span><span id="line-21"></span><span id="HalfWord"></span><span class="hs-pragma">{-# LINE 21 &quot;libraries\\ghc-heap\\GHC\\Exts\\Heap\\InfoTable\\Types.hsc&quot; #-}</span><span>
</span><span id="line-21"></span><span class="hs-keyword">type</span><span> </span><span class="hs-identifier">HalfWord</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">Word32</span><span>
</span><span id="line-22"></span><span>
</span><span id="line-23"></span><span class="hs-pragma">{-# LINE 27 &quot;libraries\\ghc-heap\\GHC\\Exts\\Heap\\InfoTable\\Types.hsc&quot; #-}</span><span>
</span><span id="line-27"></span><span>
</span><span id="line-28"></span><span class="hs-keyword">type</span><span> </span><span id="EntryFunPtr"><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#EntryFunPtr"><span class="hs-identifier hs-var">EntryFunPtr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="../../base/src/GHC.Ptr.html#FunPtr"><span class="hs-identifier hs-type">FunPtr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Ptr.html#Ptr"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Ptr.html#Ptr"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-29"></span><span>
</span><span id="line-30"></span><span class="hs-comment">-- | This is a somewhat faithful representation of an info table. See</span><span>
</span><span id="line-31"></span><span class="hs-comment">-- &lt;https://gitlab.haskell.org/ghc/ghc/blob/master/includes/rts/storage/InfoTables.h&gt;</span><span>
</span><span id="line-32"></span><span class="hs-comment">-- for more details on this data structure.</span><span>
</span><span id="line-33"></span><span id="local-6989586621679057818"><span id="local-6989586621679057819"></span></span><span class="hs-keyword">data</span><span> </span><span id="StgInfoTable"><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-var">StgInfoTable</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="StgInfoTable"><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-var">StgInfoTable</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-34"></span><span>   </span><span id="entry"><span class="annot"><span class="annottext">StgInfoTable -&gt; Maybe EntryFunPtr
</span><a href="GHC.Exts.Heap.InfoTable.Types.html#entry"><span class="hs-identifier hs-var hs-var">entry</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#EntryFunPtr"><span class="hs-identifier hs-type">EntryFunPtr</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- Just &lt;=&gt; not TABLES_NEXT_TO_CODE</span><span>
</span><span id="line-35"></span><span>   </span><span id="ptrs"><span class="annot"><span class="annottext">StgInfoTable -&gt; HalfWord
</span><a href="GHC.Exts.Heap.InfoTable.Types.html#ptrs"><span class="hs-identifier hs-var hs-var">ptrs</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#HalfWord"><span class="hs-identifier hs-type">HalfWord</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-36"></span><span>   </span><span id="nptrs"><span class="annot"><span class="annottext">StgInfoTable -&gt; HalfWord
</span><a href="GHC.Exts.Heap.InfoTable.Types.html#nptrs"><span class="hs-identifier hs-var hs-var">nptrs</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#HalfWord"><span class="hs-identifier hs-type">HalfWord</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-37"></span><span>   </span><span id="tipe"><span class="annot"><span class="annottext">StgInfoTable -&gt; ClosureType
</span><a href="GHC.Exts.Heap.InfoTable.Types.html#tipe"><span class="hs-identifier hs-var hs-var">tipe</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.ClosureTypes.html#ClosureType"><span class="hs-identifier hs-type">ClosureType</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-38"></span><span>   </span><span id="srtlen"><span class="annot"><span class="annottext">StgInfoTable -&gt; HalfWord
</span><a href="GHC.Exts.Heap.InfoTable.Types.html#srtlen"><span class="hs-identifier hs-var hs-var">srtlen</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#HalfWord"><span class="hs-identifier hs-type">HalfWord</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-39"></span><span>   </span><span id="code"><span class="annot"><span class="annottext">StgInfoTable -&gt; Maybe ItblCodes
</span><a href="GHC.Exts.Heap.InfoTable.Types.html#code"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#ItblCodes"><span class="hs-identifier hs-type">ItblCodes</span></a></span><span> </span><span class="hs-comment">-- Just &lt;=&gt; TABLES_NEXT_TO_CODE</span><span>
</span><span id="line-40"></span><span>  </span><span class="hs-special">}</span><span> </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679057792"><span id="local-6989586621679057794"><span id="local-6989586621679057809"><span class="annot"><span class="annottext">Int -&gt; StgInfoTable -&gt; ShowS
[StgInfoTable] -&gt; ShowS
StgInfoTable -&gt; String
(Int -&gt; StgInfoTable -&gt; ShowS)
-&gt; (StgInfoTable -&gt; String)
-&gt; ([StgInfoTable] -&gt; ShowS)
-&gt; Show StgInfoTable
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [StgInfoTable] -&gt; ShowS
$cshowList :: [StgInfoTable] -&gt; ShowS
show :: StgInfoTable -&gt; String
$cshow :: StgInfoTable -&gt; String
showsPrec :: Int -&gt; StgInfoTable -&gt; ShowS
$cshowsPrec :: Int -&gt; StgInfoTable -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(forall x. StgInfoTable -&gt; Rep StgInfoTable x)
-&gt; (forall x. Rep StgInfoTable x -&gt; StgInfoTable)
-&gt; Generic StgInfoTable
forall x. Rep StgInfoTable x -&gt; StgInfoTable
forall x. StgInfoTable -&gt; Rep StgInfoTable x
forall a.
(forall x. a -&gt; Rep a x) -&gt; (forall x. Rep a x -&gt; a) -&gt; Generic a
$cto :: forall x. Rep StgInfoTable x -&gt; StgInfoTable
$cfrom :: forall x. StgInfoTable -&gt; Rep StgInfoTable x
</span><a href="../../base/src/GHC.Generics.html#Generic"><span class="hs-identifier hs-var hs-var hs-var hs-var">Generic</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-41"></span></pre></body></html>